package 文件io;
import java.io.*;
/*
 1,以字符为单位的输入输出流，有效解决读文件乱码
 	输出流 Writer 对文件使用子类 FileWriter
 	输入流 Reader 对文件使用子类 FileReader
 写法类似字符流
 2,字符流 每次操作是一个字符
 3,文件字符流自带缓存1024字节，当缓存满或是手动刷新或关闭流时会把数据写入文件
   而字节流默认每次写入操作，就直接把数据写入文件
 4,通常操作文本文件建议使用字符流
   非文本文件操作使用字节流
   
 
*/

public class 字符输入输出流
{
	public static void main(String[] args){
		//out();
		in();
	}
	//输出流
	private static void out(){
		File file=new File(FilePath.PATH+"/test.txt");
		String info="我有很多能力.";
		try
		{
			Writer out=new FileWriter(file,true);
			out.write(info);//字符流写入操作可以直接写入字符串
			out.close();
		}
		catch (IOException e)
		{}
	}
	//输入流
	private static void in(){
		File file=new File(FilePath.PATH+"/test.txt");
		
		try
		{
			Reader in=new FileReader(file);
			char[] cs=new char[9];//这里填多少都不会造成乱码，因为每次都取多少个字符
			int len=-1;
			StringBuilder sb=new StringBuilder();
			while((len=in.read(cs))!=-1){
				sb.append(new String(cs,0,len));
			}
			System.out.println(sb);
			in.close();
		}
		catch (FileNotFoundException e)
		{}
		catch(IOException e){}
	}
}
